К контактам
Фёдор Духовской

{{ qTitle }}

Обсудить проект

Python · Санкт-Петербург · dukhovskoj.ru

Фёдор
Духовской
Python-разработчик. Боты, сайты, автоматизация и ИИ-агенты под ключ.

В каждом работающем продукте есть дух. Его пишу я.

Начинал с приложений для игр. Теперь пишу код для вашего бизнеса.

Листайте вниз

Боты, которые не теряют заявки.

Глава 1. Telegram, VK, Discord. Магазины, записи, CRM, оплаты. Заказчику нужен не бот — ему нужно, чтобы ни одна заявка не потерялась между чатом и таблицей.

Демо-сценарий. Барбершоп „Ножницы“ выдуман.

Клиент Барбершоп „Ножницы“
{{ m.text }}
Владелец CRM
  • {{ r.label }} {{ r.value }}

{{ liveBotLabel }}

Хочу такого бота →

Сайты и автоматизация.

Глава 2. Лендинги, веб-приложения, парсеры, интеграции по API. Всё, что сейчас делается руками и копипастой, можно отдать коду.

Хочу автоматизировать →

Ищу дыры раньше других.

Глава 3. На любое приложение или мини-сайт я смотрю с одним вопросом: можно ли через это навредить проекту? Обычно можно. Проверяю логику, а не только код.

Найдите дыру. Их здесь три.

{{ secCounter }}

{{ secProduct }}

Итого {{ secTotal }}
{{ l.text }}

POST /api/order

{{ inspJson }}
{{ h.howLabel }}

{{ h.title }}

{{ h.text }}

{{ h.code }}
{{ h.holdHint }}

fix deployed [ok]

Проверить мой сайт или бота →

ИИ, но с инженерной головой.

Глава 4. Последний год — плотно в ИИ. Делал ИИ-агента техподдержки для игры. ИИ-инструменты пишут быстро, а я решаю, что из этого можно выпускать.

Сейчас план собирается по сценарию. Подключить LLM — одна строка в конфиге.

{{ planHeading }}

{{ b.title }}

  • {{ it.text }}

{{ planLive }}

Скорость студии, качество инженера.

Глава 5. 7 лет в разработке. Python — основной, на уровне middle+ / senior. C++, JavaScript и вёрстка — база, Rust — пробовал. Начинал с приложений для игр. Сейчас работаю с ИИ-инструментами и собственной инженерной базой.

Учусь в СПбПУ Петра Великого, ИКНиК, «Математика и компьютерные науки». Траектория — архитектор ИИ / ML-инженер.

Что я делаю

  1. Боты для Telegram, VK, Discord — магазины, записи, CRM, оплаты

  2. Сайты, лендинги, веб-приложения

  3. Автоматизация, парсеры, интеграции по API

  4. ИИ-агенты и LLM в процессах — поддержка, заявки, ассистенты

  5. Прототипы ML-решений

  6. Проверка сайтов и приложений на уязвимости и дыры в логике

← На главную

Как собран этот сайт

Стек

Одна HTML-страница и ES-модули с CDN, без фреймворка и сборки.

  • three.js r186 (WebGLRenderer) и postprocessing — студия, стекло, чернила, линза.
  • GSAP 3.13 (ScrollTrigger, SplitText, CustomEase) — скролл, переливание, появление текста.
  • Lenis 1.1 — плавная прокрутка колесом; на тачскринах прокрутка нативная.
  • Web Audio — звук, который следует за физикой. Выключен, пока его не включат.
  • Formular и Formular Mono; до покупки лицензии — Onest и JetBrains Mono.

Бюджет производительности

МетрикаБюджет
LCP — имя в первом экране≤ 1,8 с
CLS≤ 0,03
INP≤ 150 мс
Начальный JS≤ 60 КБ gz
3D-чанк≤ 270 КБ gz
Вызовы отрисовки≤ 30
Кадры в секунду60 / 45–60

60 fps на десктопе, 45–60 на телефонах.

Замеры

[заполнить после Lighthouse и WebPageTest]

Что внутри демо

Демо-бот — сценарий, который целиком живёт в браузере. Каждый ответ клиента — событие: оно двигает диалог, обновляет карточку владельца и толкает чернила в сосуде 01.

Консоль — обычная форма и журнал с role="log". Команда /build выводит шесть шагов по 250 мс, и каждый [ok] заполняет ярус сосуда 02.

«Найдите дыру» не отправляет запросов в сеть: «сервер» — функция в браузере с тремя намеренными ошибками. Запаянный шов включает проверку, и тот же эксплойт получает 422.

План собирается из шаблонов по ключевым словам. Если указать адрес API, текст уходит в LLM, ответ проверяется по схеме, а без ответа за 8 секунд снова работает шаблон.

Как устроены сосуды и чернила

Все шесть сосудов строит одна функция makeVessel(dna): семь точек профиля, сплайн Catmull-Rom и LatheGeometry. Рёбра, ярусы и шов — модификаторы того же профиля. Значки в шапке нарисованы из тех же профилей.

Чернила — луч, который делает 28 шагов через цилиндр вокруг сосуда. Маска — тело вращения из профиля (текстура 1×96), плотность — шум fbm с искажением, два облака сливаются через smooth-min.

Переливание — 1 600 частиц на дуге от горлышка к горлышку. Прогресс скролла управляет лентой, уровнем чернил в обоих сосудах, дугой камеры и полосой линзы.

ДНК сосудов, метры
СосудheightbellyRneckRОсобенность
001.700.320.07—
011.250.420.128 рёбер, глубина 0.035
021.400.380.164 яруса по 0.02
031.300.400.10шов под 38°
041.100.520.06широкое тело, ветви
061.350.400.13пустой

Доступность

Весь текст — в DOM, канвас помечен aria-hidden. Один h1 на страницу, у каждой главы — h2 и aria-labelledby.

Все демо — формы и кнопки и работают с клавиатуры; ленты сообщений — role="log", шов запаивается удержанием Enter или пробела. Фокус — двойное кольцо.

При prefers-reduced-motion нет плавной прокрутки, масок и полётов камеры: остаются короткие переходы на 200 мс.

Что я бы улучшил дальше

  1. Компиляция шейдеров на старте блокирует поток на 1,5–5 секунд. Её нужно разнести по кадрам.
  2. Чернила пока мягче, чем задумано: нужны более резкие «языки» и отдельный проход поверх стекла.
  3. Модули грузятся с CDN. Для продакшена — сборка, пререндер обеих языковых версий и отдельный 3D-чанк.
  4. Замеров на реальных телефонах ещё нет: бюджет выше пока цель, а не результат.

Кейс: ИИ-агент техподдержки игры

Наполним его вашим проектом.

Обсудить проект

или напишите: job@dukhovskoj.ru

404

Здесь пусто. Как в сосуде без проекта.

На главную

Написать в Telegram
{{ toastText }}
{{ live }}